/* eslint-disable no-unused-vars */
// 1.定义函数有几种方式
function fn() {} //命名函数
let fn1 = function () {}; //匿名函数
let fn2 = new Function(); //构造函数

// 2.retrun关键字的意义
console.log('给函数一个返回的数据，并结束当前函数的执行');

// 3.函数是否可以重定义，会有什么事情发生
console.log('可以重定义，后面的函数会覆盖前面的函数');

// 4.var和function关键字有什么特别功能？
console.log(
    'var 声明的变量会变量提升为全局变量，即使在function内部定义，也能在function外部访问'
);

// 5.请定义一个函数，该函数功能为，传入一个值，返回这个值的平方值
function sq(num) {
    return num * num;
}

// 6.请定义一个函数，该函数功能为，传入一个值，返回这个值的累加值
function addNum(num) {
    let sum;
    for (let i = 1; i <= num; i++) {
        sum += i;
    }
}

// 7.请写出一个函数，功能为：传入三个值，则返回这三个值最大的那个值
function max(num1, num2, num3) {
    let max;
    if (num1 > num2) {
        max = num1;
    } else {
        max = num2;
    }
    if (num3 > max) {
        max = num3;
    }
    return max;
}
// 8.请定义一个函数，输入一个N值，则计算出该值的阶乘，即：n! = 1*2*3*4*5*6*...*N
function fac(N) {
    let res = 1;
    for (let i = 1; i <= N; i++) {
        res *= i;
    }
}
// 9.使用add方法，让console输出的结果为true。  （面试题）
// 	let num = 10;
// 	console.log(num.add(20) == 10);  // true
let num = 10;
num = {
    add: function (num) {
        return num - 10;
    },
};
console.log(num.add(20) == 10); // true
